package com.cy.store.aop;

import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.springframework.stereotype.Component;

@Component  // 将当前类的对象创建使用维护交给Spring容器
@Aspect // 标记为切面类
public class TimerAspect {
    // 将环绕通知映射到某个切面上
    @Around("execution(* com.cy.store.service.impl.*.*(..))")
    public Object around(ProceedingJoinPoint pjp) throws Throwable {
        // 先记录当前时间
        long start = System.currentTimeMillis();
        // 调用目标方法
        Object proceed = pjp.proceed();
        // 后记录当前时间
        long end = System.currentTimeMillis();
        System.out.println("耗时："+(end-start));
        return proceed;
    }
}
